package com.flyqiu.form.api.store;


import com.flyqiu.form.model.entity.FlyQiuTableConfig;

public interface StoreTableService extends BaseTableInfo {
    /**
     * 获取当前存储器唯一标识 一般默认当前bean 名称
     *
     * @return 存储器唯一标识
     */
    String getStorageKey();

    /**
     * 获取当前存储器名称
     *
     * @return 存储器名称
     */
    default String getStorageLabel() {
        return getStorageKey();
    }

    /**
     * 创建表
     *
     * @param config 数据表配置
     */
    void createTable(FlyQiuTableConfig config);

    /**
     * 修改表
     *
     * @param config 数据表配置
     */
    void updateTable(FlyQiuTableConfig config);

    /**
     * 同步数据表
     *
     * @param tableId 数据表id
     */
    default void synchronizationTable(String tableId) {
        synchronizationTable(getTableConfigModel(tableId));
    }

    /**
     * 同步数据表
     *
     * @param formConfig 数据表配置
     */
    void synchronizationTable(FlyQiuTableConfig formConfig);


    /**
     * 删除表
     */
    default void deleteTable(String tableId) {
        deleteTable(getTableConfigModel(tableId));
    }


    void deleteTable(FlyQiuTableConfig formConfig);

    /**
     * 清空数据
     *
     * @param tableId 数据表id
     */
    default void clearData(String tableId) {
        clearData(getTableConfigModel(tableId));
    }

    /**
     * 清空表数据
     *
     * @param formConfig 数据表配置
     */

    void clearData(FlyQiuTableConfig formConfig);


}
